Aşağıdaki "Products" ("Ürünler") tablosuna bakalım:
ProductID | ProductName | SupplierID | CategoryID | Unit | Price |
---|---|---|---|---|---|
1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18.00 |
2 | Chang | 1 | 1 | 24 - 12 oz bottles | 19.00 |
3 | Aniseed Syrup | 1 | 2 | 12 - 550 ml bottles | 10.00 |
4 | Chef Anton's Cajun Seasoning | 2 | 2 | 48 - 6 oz jars | 22.00 |
5 | Chef Anton's Gumbo Mix | 2 | 2 | 36 boxes | 21.35 |
"UnitsOnOrder" sütununun isteğe bağlı olduğunu ve NULL değerini içerebileceğini varsayalım.
Aşağıdaki talimatı göz önünde bulundurun SELECT:
SELECT ProductName, UnitPrice * (UnitsInStock + UnitsOnOrder)
FROM Products
Yukarıdaki örnekte "UnitsOnOrder" değerlerinden herhangi biri NULL'ye eşitse sonuç NULL olacaktır.
MySQL IFNULL() işlevi, ifade NULL'ye eşitse alternatif bir değer döndürmenize olanak tanır:
SELECT ProductName, UnitPrice * (UnitsInStock + IFNULL(UnitsOnOrder, 0))
FROM Products
veya COALESCE() işlevini kullanabiliriz, örneğin:
SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products
SQL Server ISNULL() işlevi, ifadenin NULL değerine sahip olması durumunda alternatif bir değer döndürmenize olanak tanır:
SELECT ProductName, UnitPrice * (UnitsInStock + ISNULL(UnitsOnOrder, 0))
FROM Products
veya COALESCE() işlevini kullanabiliriz, örneğin:
SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products
MS Access işlevi IsNull(), ifade null ise TRUE (-1) değerini döndürür, aksi takdirde FALSE (0) değerini döndürür:
SELECT ProductName, UnitPrice * (UnitsInStock + IIF(IsNull(UnitsOnOrder), 0, UnitsOnOrder))
FROM Products
Oracle NVL() işlevi aynı sonucu elde eder:
SELECT ProductName, UnitPrice * (UnitsInStock + NVL(UnitsOnOrder, 0))
FROM Products
veya COALESCE() işlevini kullanabiliriz, örneğin:
SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products